﻿/*
三进制小数 
Time Limit:1000MS  Memory Limit:32768K

  
Description:
你的任务呢，是将一个有理数转换成三进制小数。
“什么是三进制小数呢？”你一定会问，这很明白，就是以三为基（二进制数以2为基，而十进制数则以10为基）的小数。

Input:
有理数的值都是在0与1之间的，每个有理数都由一个分子和一个分母表示，分子与分母之间隔着一个斜杠。
有理数的个数不会超过1000个。 
Output:
输出格式见样本输出，它是以小数点开头的具有10位精度的3进制数。 
Sample Input:
1 / 3
1 / 4
1 / 6
7 / 8

Sample Output:
.1000000000
.0202020202
.0111111111
.2121212122
*/

#include <stdio.h>

int main(int argc, char* argv[])
{
	enum {BASE=3, PRECISION=10};

	int p, q;
	char op;
	while (EOF!=scanf("%d %c %d", &p, &op, &q))
	{
		int precision = PRECISION;
		
		int digits[PRECISION+1]={0};
		int i=0;
		while(i<(PRECISION+1))
		{
// 			p*=BASE;
// 			digits[i]=p/q;
// 			p%=q;	

			digits[i]=p*BASE/q;
			p=p*BASE%q;	
			++i;
		}
		i=PRECISION;
		if(digits[i]>=2)
		{
			++digits[i-1];
			--i;

			while ((i) && digits[i]>=BASE)
			{
				digits[i]=0;
				++digits[i-1];
				--i;
			}
		}

		printf(".");		
		for (i=0; i<PRECISION; ++i)
			printf("%d", digits[i]);
		printf("\n");
	}
	return 0;
}